package behavioral.observer;


import java.util.Observable;
import java.util.Observer;

//观察者：teacher  ；；  要去观察的是 Course
public class Teacher implements Observer {
    private String teacherName;

    public Teacher(String teacherName) {
        this.teacherName = teacherName;
    }

    // 参数 ：第一个Observable 是被观察的对象(这里也就是Course) ；； 第二个对象：arg 是通过notifyObservers方法传递的参数（这里也就是Teacher 的 notify()方法里面的question）
    @Override
    public void update(Observable o, Object arg) {
        // update 方法是写 当我观察到 改变了，然后从而做一些操作，如发一些短信。。。
        // 如果流量巨大，那么需要改成异步的，放入消息队列，或者写入一个缓存中间件。然后用生产者和消费者模式 对相对应的用户进行通知。
        Course course = (Course)o;
        Question question = (Question)arg;
        System.out.println(teacherName+"老师的"+course.getCourseName()+"课程接受到一个"+question.getUserName()+" 提交的问题："+question.getQuestionContent());
    }
}